/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ResourceBundle;
import javax.activation.MimetypesFileTypeMap;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.bean.BeanArchivo;
import model.dao.DaoArchivo;
 @WebServlet(name = "ServletDescarga", urlPatterns = {"/ServletDescarga"})
/**
* A simple Servlet to download a file.
* @author alex
*
*/
public class ServletDescarga extends HttpServlet {
     
    private static final long serialVersionUID = 4440011247408877539L;
//    private String dirUploadFiles;
//    ResourceBundle bundle = ResourceBundle.getBundle("configs/config");
//    dirUploadFiles = bundle.getString("Ubicacion");

   
      protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
          
         
           String action = request.getParameter("action");
           int id = Integer.valueOf(request.getParameter("id")); 
           if (action.equals("descarga")){  
               
               
               String path=request.getServletContext().getRealPath("descarga/");
               String FilePath = path + "/" + this.ObtenerRuta(id)+ ".pdf";
         
                downloadFile(request,response,  FilePath );
                
                DaoArchivo daoarchivo = new DaoArchivo();
                BeanArchivo archivo=daoarchivo.get(id);
                int numero_descargas = archivo.getNum_descargas();
                numero_descargas++;              
                daoarchivo.actualizar_numero_descargas(id, numero_descargas);
                
                
                
//               this.getServletContext().getRealPath( "/archivo/Prueba.txt"));
            }
        
      }
      
    protected void downloadFile(HttpServletRequest request,HttpServletResponse response, String filePath)
            throws ServletException, IOException {

        File fileToDownload = new File(filePath);
        FileInputStream fileInputStream = new FileInputStream(fileToDownload);
        String nombre= request.getParameter("nombre");
        ServletOutputStream out = response.getOutputStream();
        String mimeType = new MimetypesFileTypeMap().getContentType(filePath);

        response.setContentType(mimeType);
        response.setContentLength(fileInputStream.available());
        response.setHeader("Content-Disposition", "attachment; filename=\" "
                + nombre + "\"");

        int c;
        while ((c = fileInputStream.read()) != -1) {
            out.write(c);
        }
        out.flush();
        out.close();
        fileInputStream.close();
    }
     @Override
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
            processRequest(request, response);
    }
    
     public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         processRequest(request, response);
    }

    
    public String ObtenerRuta(int idarchivo){
        
        String ruta=null;
        DaoArchivo daoARCHIVO = new DaoArchivo();
        ruta=daoARCHIVO.descarga(idarchivo);
        return  ruta ;
        
    }
    
}

